package com.jeesite.modules.exam.quota.dao;

import com.jeesite.common.dao.CrudDao;
import com.jeesite.common.mybatis.annotation.MyBatisDao;
import com.jeesite.modules.exam.assessment.entity.DcSupExamInfo;
import com.jeesite.modules.exam.quota.entity.DcSupExamQuota;
import com.jeesite.modules.exam.quota.entity.DcSupExamQuotaInfo;
import com.jeesite.modules.exam.quota.entity.DcSupExamQuotaOrg;
import com.jeesite.modules.exam.quota.entity.DcSupExamSumQuotaInfo;
import com.jeesite.modules.file.entity.FileUpload;
import org.apache.ibatis.annotations.Param;

import java.util.ArrayList;
import java.util.List;
import java.util.Map;

/**
 * 指标审核DAO接口
 * @author cjs
 * @version 2022-05-31
 */
@MyBatisDao
public interface DcSupExamTargetAuditDao extends CrudDao<DcSupExamQuotaInfo> {
    /**
     * 单项指标考核细则审核页面查询被考核单位
     */
     List<Map<String, String>> exameOrgListData(String createOrgName,String examYear,String examId);

    /**
     * 单项指标考核细则审核列表数据
     */
    int dcSupExamScoreDataTotal(DcSupExamSumQuotaInfo dcSupExamSumQuotaInfo);
    List<DcSupExamQuotaInfo> dcSupExamScoreData(DcSupExamQuotaInfo dcSupExamQuotaInfo);
    /**
     * 单项/关键指标考核报送通知列表页数据
     */
    List<DcSupExamQuotaInfo> dcSupExamZBData(DcSupExamQuota dcSupExamQuota);

    //查询分页数据指标审核主列表数据
    List<DcSupExamInfo> findPage (DcSupExamInfo dcSupExamInfo);

    //审核退回功能
    void exameSendBack(List<String> exameOrgs);

    /**
     * 单项/关键指标考核指标报送单位
     */
    List<Map<String, String>> exameSendOrgListData(String createOrgName, String type,String examYear,@Param("examId")  String examId);
    //单项/关键指标报送通知审核退回功能
    void exameZBSendBack(List<String> list);
    //根据指标任务ID获取数据
    DcSupExamQuota getDcSupExamQuotaById(DcSupExamQuota dcSupExamQuota);

    List<DcSupExamQuotaInfo> dcSupExamScoreDataList(DcSupExamQuota dcSupExamQuota);
    //向考核任务指标表-报送-主表插入数据
    void insertExamQuotaList(@Param("dcSupExamQuota") DcSupExamQuota dcSupExamQuota, @Param("quotaId") String quotaId, @Param("typeIndex") String typeIndex);
    //向考核任务指标表-指标信息
    void insertExamQuotaInfoList(List<DcSupExamQuotaInfo> dcSupExamQuotaInfoList);
    //向考核任务指标表-被考核单位
    void insertExamQuotaOrgList(List<DcSupExamQuotaOrg> dcSupExamQuotaOrgList);
    /**
     * 单项指标考核细则审核列表页面获取附件key
     */
    DcSupExamQuota getDcSupExamXZQuotaById(String quotaGroup, String examId);

    Integer findPageTotal(DcSupExamInfo dcSupExamInfo);

    List<DcSupExamQuotaInfo> dcSupExamScoreDataList1(DcSupExamQuota dcSupExamQuota);

    int dcSupExamScoreDataTotal2(DcSupExamQuota dcSupExamQuota);

    DcSupExamQuota getDcSupExamQuota(DcSupExamQuota dcSupExamQuota);

    List<DcSupExamQuotaInfo> findDcSupExamQuotaInfoList(String id);

    List<DcSupExamQuotaOrg> findDcSupExamQuotaOrgList(String id);

    DcSupExamQuota getDSEBySubmitStatus(DcSupExamQuota dcSupExamQuota);

    DcSupExamSumQuotaInfo getExamId(String id);
}
